/*
  公共子序列
 【题目描述】
    我们称序列Z = <z1, z2, ... , zk> 是序列 X = <x1, x2,... , xm> 的子序列的条件是：
    存在严格上升的序列<i1, i2, ... , ik>，使得对j = 1, 2, ... , k, 有 xij = zj。
    比如Z = <a, b, f, c> 是X = <a, b, c, f, b, c>的子序列。

    现在给出两个序列 X和Y，你的任务是找到 X和Y 的最大公共子序列，
    也就是说要找到一个最长的序列Z，使得 Z 既是 X 的子序列也是 Y 的子序列。
 【输入】
    输入包括多组测试数据。
    每组数据包括一行，给出两个长度不超过200的字符串，表示两个序列。
    两个字符串之间由若干个空格隔开。
 【输出】
    对每组输入数据，输出一行，给出两个序列的最大公共子序列的长度。
 【输入样例】
    abcfbc abfcab
    programming contest
    abcd mnp
 【输出样例】
    4
    2
    0
*/